package beautiful.butterfly.drds.binlog.utils;

import beautiful.butterfly.drds.binlog.consumer.ConsumerMananger;
import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j;

import java.util.ArrayList;

@Slf4j
public class DataUtils
{


    public static boolean handle(String database, String table, JSONObject data)
    {
        // 默认为false
        boolean result = false;
        // 所以，存储的结果一定要赋值给result
        // !!!!!!!!!!!!!用户自定义业务逻辑开始
        // result=MQUtils.sendMqQueue("kmonitor-binlog", data);
        // TimeUtils.sleepMilliSeconds(6);// 模拟业务耗时6ms
        // logger.info("-----------------");
        // logger.info("[" + database + "] [" + tableName + "] --- " +
        // data.toJSONString());
        // logger.info("-----------------");
        result = true;
        // !!!!!!!!!!!!!用户自定义业务逻辑结束
        return result;
    }

    public static boolean handleMulti(String databaseName, String tableName, ArrayList<JSONObject> jsonObjects)
    {
        if (null == jsonObjects || jsonObjects.size() == 0)
        {
            return true;
        }
        // 可以开始处理每一条了
        // 只要其中一个发生错误，就立刻返回,剩下的也不用处理了
        for (JSONObject jsonObject : jsonObjects)
        {
            if (null == jsonObject)
            {
                continue;
            }
            if (false == DataUtils.handle(databaseName, tableName, jsonObject))
            {
                log.info("handleMulti ,but error happened");
                return false;
            }
            ConsumerMananger.getInstance().increase();
            // LoggerUtils.debug(logger, data.toJSONString());
        }
        // 返回结果
        return true;
    }
}
